package com.lkdont.android.base.ui

import java.util.*

/**
 * Activity基类管理器
 *
 * @author lqd
 */
class BaseActManager private constructor() {

    companion object {

        /**
         * BaseActManager单例
         */
        val instance by lazy(LazyThreadSafetyMode.SYNCHRONIZED) {
            BaseActManager()
        }

    }

    // 使用容器将所有的Activity储存起来
    private val activityQueue: Deque<BaseAct> = LinkedList()

    /**
     * 保存[act]
     */
    fun add(act: BaseAct) {
        activityQueue.add(act)
    }

    /**
     * 移除[act]
     */
    fun remove(act: BaseAct) {
        activityQueue.remove(act)
    }

    /**
     * 获取当前Activity的数量
     */
    fun getActivityCount() = activityQueue.size

    /**
     * 获取最前面的Activity
     */
    fun getFrontActivity() = activityQueue.peekLast()
}
